// 说一下防抖函数的应用场景，并简单说下实现方式 （滴滴）
// 在事件被触发n秒后再执行回调，如果在这n秒内又被触发，则重新计时。
function debounce(fn, wait) {
  var timer = null;
  return function () {
    var context = this
    var args = arguments
    if (timer) {
      clearTimeout(timer);
      timer = null;
    }
    timer = setTimeout(function () {
      fn.apply(context, args)
    }, wait)
  }
}

var fn = function () {
}
// 第一次在1500ms后触发，之后每1000ms触发一次
setInterval(debounce(fn,500),1000)
// 不会触发一次（我把函数防抖看出技能读条，如果读条没完成就用技能，便会失败而且重新读条）
setInterval(debounce(fn,2000),1000)
